package com.sx.zongzhi.modle;

import com.sx.zongzhi.bean.AppealBean;
import com.sx.zongzhi.bean.AppealDetailBean;
import com.sx.zongzhi.bean.AppealProcessBean;
import com.sx.zongzhi.bean.AppealTypeBean;
import com.sx.zongzhi.bean.CompanyAppealBean;
import com.sx.zongzhi.bean.CompanyBean;
import com.sx.zongzhi.bean.ContactBean;
import com.sx.zongzhi.bean.DisputeBean;
import com.sx.zongzhi.bean.DisputeDetailBean;
import com.sx.zongzhi.bean.EconomicOrganizionBean;
import com.sx.zongzhi.bean.EducationBean;
import com.sx.zongzhi.bean.EventTypeBean;
import com.sx.zongzhi.bean.KeyAreaBean;
import com.sx.zongzhi.bean.KeyAreaDetailBean;
import com.sx.zongzhi.bean.KeyPunishBean;
import com.sx.zongzhi.bean.KeyPunishDetailBean;
import com.sx.zongzhi.bean.KeyTradesBean;
import com.sx.zongzhi.bean.KeyTradesDetailBean;
import com.sx.zongzhi.bean.MailBean;
import com.sx.zongzhi.bean.MainPagerBean;
import com.sx.zongzhi.bean.NewSocietyOrganizationBean;
import com.sx.zongzhi.bean.NoReadMesBean;
import com.sx.zongzhi.bean.OrganizingBean;
import com.sx.zongzhi.bean.PhotoBean;
import com.sx.zongzhi.bean.ProcessBean;
import com.sx.zongzhi.bean.PublicBean;
import com.sx.zongzhi.bean.ServiceObjectBean;
import com.sx.zongzhi.bean.ServiceObjectTypeBean;
import com.sx.zongzhi.bean.ServiceRecordBean;
import com.sx.zongzhi.bean.ServiceRecordDetailBean;
import com.sx.zongzhi.bean.ServicerBean;
import com.sx.zongzhi.bean.UserBean;
import com.sx.zongzhi.bean.VersionBean;
import com.sx.zongzhi.bean.WorkLogBean;
import com.sx.zongzhi.net.BasePageListBean;
import com.sx.zongzhi.net.BaseResult;

import java.util.List;
import java.util.Map;

import okhttp3.MultipartBody;
import retrofit2.Call;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Path;
import retrofit2.http.QueryMap;


/**
 * Created by XZY on 2017/11/30.
 * api 接口定义
 */

public interface ApiManagerService {

    /**
     * 检测更新
     * @param map
     * @return
     */
    @POST("/mobile/comprehensiveGovernance/apkVersionManage/do_getApkVersionNew.action")
    Call<BaseResult<VersionBean>> getVersionMessage(@QueryMap Map<String,Object> map);

    /**
     * 获取未读消息数量
     * @param map
     * @return
     */
    @POST("/mobile/comprehensiveGovernance/apkVersionManage/getPersonnelMessageNum.action")
    Call<BaseResult<NoReadMesBean>> getNoReadMessage(@QueryMap Map<String,Object> map);


    /**
     * 多个文件上传
     */
    @Multipart
    @POST("/mobile/comprehensiveGovernance/fileStorageManage/uploadFileStorageByBatch.action")
    Call<BaseResult<List<PhotoBean>>> upLoadMultiFile(@QueryMap Map<String,Object> map,
                                                      @Part List<MultipartBody.Part> files);

    /**
     * 根据字典项名称获取数据字典
     */
    @POST("/mobile/comprehensiveGovernance/propertyDictMobileManage/getPropertyDictByDomainName.action")
    Call<BaseResult<PublicBean>> getPublicList(@QueryMap Map<String, Object> loginMap);

    /**
     * 获取学历
     */
    @POST("/mobile/comprehensiveGovernance/issue/mainPartiesSchoolingInfo.action")
    Call<BaseResult<List<EducationBean>>> getEducationList(@QueryMap Map<String, Object> loginMap);

    /**
     * 登录
     * @param loginMap 参数
     */
    @POST("/mobile/protectionRoadAndLine/sessionManageMobileManage/login.action")
    Call<BaseResult<UserBean>> login(@QueryMap Map<String, Object> loginMap);

    /**
     * 首页统计
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/statistic/getStatisticData.action")
    Call<BaseResult<MainPagerBean>> getMainPager(@QueryMap Map<String, Object> mMap);

    /**
     * 获取组织机构
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/organizationMobileManage/choiceOrganizations.action")
    Call<BaseResult<OrganizingBean>> getOrg(@QueryMap Map<String, Object> mMap);

    /**
     * 矛盾纠纷新增/修改
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/issue/{Url}")
    Call<BaseResult<DisputeDetailBean>> addDispute(@Path("Url") String url, @QueryMap Map<String, Object> mMap);

    /**
     * 获取事件类别
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/issue/getIssueType.action")
    Call<BaseResult<List<EventTypeBean>>> getEventTypeList( @QueryMap Map<String, Object> mMap);

    /**
     * 获取矛盾纠纷列表
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/issue/{Url}")
    Call<BaseResult<DisputeBean>> getDisputeList(@Path("Url") String url, @QueryMap Map<String, Object> mMap);

    /**
     * 获取矛盾纠纷详情
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/issue/issueDetail.action")
    Call<BaseResult<DisputeDetailBean>> getDisputeDetail(@QueryMap Map<String, Object> mMap);

    /**
     * 获取矛盾受理
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/issue/dealIssueAcceptance.action")
    Call<BaseResult<Boolean>> disputeAccept(@QueryMap Map<String, Object> mMap);

    /**
     * 获取矛盾办理
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/issue/{Url}")
    Call<BaseResult<Boolean>> disputeDeal(@Path("Url") String path,@QueryMap Map<String, Object> mMap);


    /**
     * 获取主办/抄送单位
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/issue/{Url}")
    Call<BaseResult<CompanyBean>> getCompanyList(@Path("Url") String path, @QueryMap Map<String, Object> mMap);

    /**
     * 获取矛盾纠纷处理过程
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/issue/issueTreatmentProcess.action")
    Call<BaseResult<List<ProcessBean>>> getDisputeProcess(@QueryMap Map<String, Object> mMap);

    /**
     * 获取收件箱列表 /mobile/comprehensiveGovernance/inbox/getInboxMessage.action
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/inbox/searchInboxMessage.action")
    Call<BaseResult<BasePageListBean<MailBean>>> getInBoxList(@QueryMap Map<String, Object> mMap);

    /**
     * 获取收件箱详情
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/inbox/getInboxMessageDetails.action")
    Call<BaseResult<MailBean>> getInBoxDetail(@QueryMap Map<String, Object> mMap);

    /**
     *删除收件箱
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/inbox/deleteInboxMessageById.action")
    Call<BaseResult<Boolean>> deleteInBox(@QueryMap Map<String, Object> mMap);

    /**
     * 获取发件箱列表 /mobile/comprehensiveGovernance/outbox/getOutboxMessage.action
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/outbox/searchOutboxMessage.action")
    Call<BaseResult<BasePageListBean<MailBean>>> getSendBoxList(@QueryMap Map<String, Object> mMap);
    /**
     *获取发件箱详情
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/outbox/getOutboxMessageDetails.action")
    Call<BaseResult<MailBean>> getSendBoxDetail(@QueryMap Map<String, Object> mMap);
    /**
     *  删除发件箱
     * @param mMap 参数
     */
    @POST("/mobile/comprehensiveGovernance/outbox/deleteOutboxMessageById.action")
    Call<BaseResult<Boolean>> deleteSendBox(@QueryMap Map<String, Object> mMap);
    /**
     *  获取站内列表
     */
    @POST("/mobile/comprehensiveGovernance/outbox/getInsideContact.action")
    Call<BaseResult<BasePageListBean<ContactBean>>> getContactList(@QueryMap Map<String, Object> map);
    /**
     *  获取群组列表
     */
    @POST("/mobile/comprehensiveGovernance/outbox/getInsideGroup.action")
    Call<BaseResult<List<ContactBean>>> getContactMyGroupList(@QueryMap Map<String, Object> map);
    /**
     *  获取层级列表接口
     */
    @POST("/mobile/comprehensiveGovernance/outbox/getInsideOrgLevel.action")
    Call<BaseResult<List<ContactBean>>> getContactOrgLevelList(@QueryMap Map<String, Object> map);
    /**
     * 发送消息
     */
    @POST("/mobile/comprehensiveGovernance/outbox/sendMessage.action")
    Call<BaseResult<Boolean>> addBoxDetail(@QueryMap Map<String, Object> map);


    /**
     * 修改用户信息
     */
    @POST("/mobile/comprehensiveGovernance/userMobileManage/updateUserInfo.action")
    Call<BaseResult<UserBean>> updatePerson(@QueryMap Map<String, Object> map);
    /**
     * 修改用户密码
     */
    @POST("/mobile/comprehensiveGovernance/userMobileManage/updateUserPwd.action")
    Call<BaseResult<UserBean>> updatePassword(@QueryMap Map<String, Object> map);

    /**
     * 获取诉求服务列表
     */
    @POST("/mobile/comprehensiveGovernance/appeal/getAppealListByAppealStateCode.action")
    Call<BaseResult<AppealBean>> getAppealList(@QueryMap Map<String, Object> map);

    /**
     * 获取诉求服务类型列表
     */
    @POST("/mobile/comprehensiveGovernance/appeal/getAllAppealType.action")
    Call<BaseResult<List<AppealTypeBean>>> getAppealTypeList(@QueryMap Map<String, Object> map);


    /**
     * 诉求服务加急/受理/办理/更多
     */
    @POST("/mobile/comprehensiveGovernance/appeal/processingAppealByProcessCode.action")
    Call<BaseResult<Boolean>> acceptAppeal(@QueryMap Map<String, Object> map);

    /**
     * 诉求服务获取抄/主办
     */
    @POST("/mobile/comprehensiveGovernance/appeal/getAssignOrgByParentOrgIdAndExceptIds.action")
    Call<BaseResult<List<CompanyAppealBean.RowsBean>>> getCompanyAppealList(@QueryMap Map<String, Object> map);

    /**
     * 获取诉求服务处理记录
     */
    @POST("/mobile/comprehensiveGovernance/appeal/getProcessDescriptionByAppealId.action")
    Call<BaseResult<List<AppealProcessBean>>> getAppealProList(@QueryMap Map<String, Object> map);

    /**
     * 诉求服务详情
     */
    @POST("/mobile/comprehensiveGovernance/appeal/getAppealDetailsById.action")
    Call<BaseResult<AppealDetailBean>> getAppealDetail(@QueryMap Map<String, Object> map);

    /**
     * 获取服务记录列表
     */
    @POST("/mobile/comprehensiveGovernance/serviceRecord/findAppServiceRecords.action")
    Call<BaseResult<ServiceRecordBean>> getServiceRecordList(@QueryMap Map<String, Object> map);

    /**
     * 获取服务记录详情
     */
    @POST("/mobile/comprehensiveGovernance/serviceRecord/getServiceRecordById.action")
    Call<BaseResult<ServiceRecordDetailBean>> getServiceRecordDetail(@QueryMap Map<String, Object> map);

    /**
     * 添加服务记录
     */
    @POST("/mobile/comprehensiveGovernance/serviceRecord/addServiceRecord.action")
    Call<BaseResult<ServiceRecordDetailBean>> addServiceRecord(@QueryMap Map<String, Object> map);

    /**
     * 获取服务人员列表
     */
    @POST("/mobile/comprehensiveGovernance/serviceRecord/findServiceMembers.action")
    Call<BaseResult<ServicerBean>> getServicerList(@QueryMap Map<String, Object> map);

    /**
     * 获取服务对象类型
     */
    @POST("/mobile/comprehensiveGovernance/serviceRecord/findPopulationBigType.action")
    Call<BaseResult<List<ServiceObjectTypeBean>>> getServiceObjectTypeList(@QueryMap Map<String, Object> map);

    /**
     * 获取服务对象列表
     */
    @POST("/mobile/comprehensiveGovernance/serviceRecord/findPopulationsForServiceRecord.action")
    Call<BaseResult<ServiceObjectBean>> getServiceObject(@QueryMap Map<String, Object> map);

    /**
     * 获取工作日志列表
     */
    @POST("/mobile/comprehensiveGovernance/workDiary/findWorkDiaryPage.action")
    Call<BaseResult<BasePageListBean<WorkLogBean>>> getWorkLogList(@QueryMap Map<String, Object> map);
    /**
     * 添加工作日志
     */
    @POST("/mobile/comprehensiveGovernance/workDiary/addWorkDiary.action")
    Call<BaseResult<WorkLogBean>> addWorkLog(@QueryMap Map<String, Object> map);
    /**
     * 删除工作日志信息
     */
    @POST("/mobile/comprehensiveGovernance/workDiary/deleteWorkDiaryById.action")
    Call<BaseResult<Boolean>> deleteWorkLog(@QueryMap Map<String, Object> map);
    /**
     * 修改工作日志信息
     */
    @POST("/mobile/comprehensiveGovernance/workDiary/updateWorkDiary.action")
    Call<BaseResult<WorkLogBean>> updateWorkLog(@QueryMap Map<String, Object> map);
    /**
     * 获取重点地区排查整治列表
     */
    @POST("/mobile/comprehensiveGovernance/socialSecurity/{Url}")
    Call<BaseResult<KeyPunishBean>> getKeyPunishList(@Path("Url") String path,@QueryMap Map<String, Object> map);

    /**
     * 获取排查整治详情
     */
    @POST("/mobile/comprehensiveGovernance/socialSecurity/getSocialSecurityById.action")
    Call<BaseResult<KeyPunishDetailBean>> getKeyPunishDetail(@QueryMap Map<String, Object> map);

    /**
     * 重点地区排查整治删除
     */
    @POST("/mobile/comprehensiveGovernance/socialSecurity/deleteSocialSecurityById.action")
    Call<BaseResult<Boolean>> KeyPunishDelete(@QueryMap Map<String, Object> map);

    /**
     * 重点地区排查整治更新/新增/判断同名
     */
    @POST("/mobile/comprehensiveGovernance/socialSecurity/{Url}")
    Call<BaseResult<Boolean>> AddKeyPunish(@Path("Url") String path,@QueryMap Map<String, Object> map);

    /**
     * 获取重点区域列表
     */
    @POST("/mobile/comprehensiveGovernance/importantArea/getImportantAreaList.action")
    Call<BaseResult<KeyAreaBean>> getKeyAreaList(@QueryMap Map<String, Object> map);

    /**
     * 获取重点区域详情
     */
    @POST("/mobile/comprehensiveGovernance/importantArea/getImportantAreaById.action")
    Call<BaseResult<KeyAreaDetailBean>> getKeyAreaDetail(@QueryMap Map<String, Object> map);

    /**
     * 重点区域删除
     */
    @POST("/mobile/comprehensiveGovernance/importantArea/deleteImportantAreaById.action")
    Call<BaseResult<Boolean>> KeyAreaDelete(@QueryMap Map<String, Object> map);

    /**
     * 重点区域更新/新增/判断同名
     */
    @POST("/mobile/comprehensiveGovernance/importantArea/{Url}")
    Call<BaseResult<Boolean>> AddKeyArea(@Path("Url") String path,@QueryMap Map<String, Object> map);

    /**
     * 获取重点行业列表
     */
    @POST("/mobile/comprehensiveGovernance/keyIndustry/getKeyIndustryList.action")
    Call<BaseResult<KeyTradesBean>> getKeyTradesList(@QueryMap Map<String, Object> map);

    /**
     * 获取重点行业详情
     */
    @POST("/mobile/comprehensiveGovernance/keyIndustry/getKeyIndustryById.action")
    Call<BaseResult<KeyTradesDetailBean>> getKeyTradesDetail(@QueryMap Map<String, Object> map);

    /**
     * 重点行业删除
     */
    @POST("/mobile/comprehensiveGovernance/keyIndustry/deleteKeyIndustryById.action")
    Call<BaseResult<Boolean>> KeyTradesDelete(@QueryMap Map<String, Object> map);

    /**
     * 重点行业更新/新增/判断同名
     */
    @POST("/mobile/comprehensiveGovernance/keyIndustry/{Url}")
    Call<BaseResult<Boolean>> AddKeyTrades(@Path("Url") String path,@QueryMap Map<String, Object> map);

    /**
     * 获取非公有制经济组织列表列表
     */
    @POST("/mobile/comprehensiveGovernance/newEconomicOrganizations/searchAllNewEconomicOrganizationss.action")
    Call<BaseResult<BasePageListBean<EconomicOrganizionBean>>> getEconomicOrganizationList(@QueryMap Map<String, Object> map);
    /**
     * 获取非公有制经济组织详情
     */
    @POST("/mobile/comprehensiveGovernance/newEconomicOrganizations/getNewEconomicOrganizationsById.action")
    Call<BaseResult<EconomicOrganizionBean>> getEconomicOrganizationDetail(@QueryMap Map<String, Object> map);
    /**
     * 添加非公有制经济组织
     */
    @POST("/mobile/comprehensiveGovernance/newEconomicOrganizations/addNewEconomicOrganizations.action")
    Call<BaseResult<Boolean>> addEconomicOrganization(@QueryMap Map<String, Object> map);
    /**
     * 删除非公有制经济组织
     */
    @POST("/mobile/comprehensiveGovernance/newEconomicOrganizations/deleteNewEconomicOrganizationsById.action")
    Call<BaseResult<Boolean>> deleteEconomicOrganization(@QueryMap Map<String, Object> map);
    /**
     * 修改非公有制经济组织
     */
    @POST("/mobile/comprehensiveGovernance/newEconomicOrganizations/updateNewEconomicOrganizations.action")
    Call<BaseResult<Boolean>> updateEconomicOrganization(@QueryMap Map<String, Object> map);
    /**
     * 获取新社会组织列表
     */
    @POST("/mobile/comprehensiveGovernance/newSocietyOrganizations/findNewSocietyOrganizationsByQueryCondition.action")
    Call<BaseResult<BasePageListBean<NewSocietyOrganizationBean>>> getNewSocietyOrganizationList(@QueryMap Map<String, Object> map);
    /**
     * 获取新社会组织详情
     */
    @POST("/mobile/comprehensiveGovernance/newSocietyOrganizations/getNewSocietyOrganizationsById.action")
    Call<BaseResult<NewSocietyOrganizationBean>> getNewSocietyOrganizationDetail(@QueryMap Map<String, Object> map);

    /**
     *
     * 添加新社会组织
     */
    @POST("/mobile/comprehensiveGovernance/newSocietyOrganizations/addNewSocietyOrganizations.action")
    Call<BaseResult<Boolean>> addNewSocietyOrganization(@QueryMap Map<String, Object> map);
    /**
     * 删除新社会组织
     */
    @POST("/mobile/comprehensiveGovernance/newSocietyOrganizations/deleteNewSocietyOrganizationsById.action")
    Call<BaseResult<Boolean>> deleteNewSocietyOrganization(@QueryMap Map<String, Object> map);
    /**
     * 修改新社会组织
     */
    @POST("/mobile/comprehensiveGovernance/newSocietyOrganizations/updateNewSocietyOrganizations.action")
    Call<BaseResult<Boolean>> updateNewSocietyOrganization(@QueryMap Map<String, Object> map);

    /**
     * 签到
     */
    @POST("/mobile/comprehensiveGovernance/signMobile/addSign.action")
    Call<BaseResult<Boolean>> setCheckIn(@QueryMap Map<String, Object> map);
    /**当前月签到列表
     */
    @POST("/mobile/comprehensiveGovernance/signMobile/findSignByYearAndMonthAndUserId.action")
    Call<BaseResult<List<String>>> getCheckIn(@QueryMap Map<String, Object> map);
}
